package com.suning.sawp.intf.bi;

import java.util.List;

import com.suning.sawp.dto.bi.BiStoreSaleBrandAvgPricedDto;
import com.suning.sawp.dto.bi.BiStoreJxcCateInfo;
import com.suning.sawp.dto.bi.sale.IndexCockpitDto;
import com.suning.sawp.dto.bi.sale.SaleCategory;
import com.suning.sawp.dto.bi.sale.StoreGuideIndexDay;
import com.suning.sawp.dto.bi.sale.StoreGuideIndexMonth;
import com.suning.sawp.dto.bi.sale.StoreGuideSaleCompleteRate;
import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.mainpush.StoreManDto;

public interface StoreGuideBiService {
    /**
     * 
     * 功能描述: 督导首页日维度查询<br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @param cateCode 品类为空则随机返回一个品类（多个品类的话）
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<StoreGuideIndexDay> getStoreGuideIndexDay(String staffId, String cateCode);
    
    /**
     * 
     * 功能描述: 督导首页日维度查询<br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @param cateCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<StoreGuideIndexMonth> getStoreGuideIndexMonth(String staffId, String cateCode);
    
    /**
     * 
     * 功能描述: 查询店员所属品类列表<br>
     * 〈功能详细描述〉
     *
     * @param manDto
     * @param cateCode 品类编码
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<SaleCategory> getBlongGategories(StoreManDto manDto, String cateCode);
    
    /**
     * 
     * 功能描述: 查询店员所属品类列表不校验岗位<br>
     * 〈功能详细描述〉
     *
     * @param manDto
     * @param cateCode 品类编码
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<SaleCategory> getBlongGategoriesAll(StoreManDto manDto, String cateCode);
    
    /**
     * 
     * 功能描述: 根据年份查询当年该品类月份的任务完成情况<br>
     * 〈功能详细描述〉
     * 
     * @param staffId
     * @param year
     * @param cateCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<StoreGuideSaleCompleteRate> getStoreCateSaleCompleteRates(String staffId, String year, String cateCode);
    
    /**
     * 
     * 功能描述: 获取驾驶舱首页数据<br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @param cateCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<IndexCockpitDto> getCockpitIndex(String staffId, String cateCode);

    /**
     * 
     * 功能描述: 月维度查询门店品牌平均单价<br>
     * 〈功能详细描述〉
     *
     * @param storeManDto
     * @param cateCode
     * @param month
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    BiStoreSaleBrandAvgPricedDto queryBrandCommAvgPriceByMonth(StoreManDto storeManDto, String cateCode, String month);

    /**
     * 
     * 功能描述: 日维度查询门店品牌平均单价<br>
     * 〈功能详细描述〉
     *
     * @param storeManDto
     * @param cateCode
     * @param date
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    BiStoreSaleBrandAvgPricedDto queryBrandCommAvgPriceByDay(StoreManDto storeManDto, String cateCode, String date);
	
	BiStoreJxcCateInfo queryBrandJxcByDate(StoreManDto storeManDto, String date, String cateCode);

    BiStoreJxcCateInfo queryBrandJxcByMonth(StoreManDto storeManDto,String month, String cateCode);

}
